package com.cyt.work.wb.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.work.wb.model.po.WbUser;
import com.cyt.work.wb.model.vo.WbUserVo;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.wx.model.po.WxMember;

import java.util.List;

/**
 * 维保模块_人员信息-人员信息Service层接口类
 *
 * @author shengQiang Yu
 * @date 2019-11-28 15:14:32
 */
public interface WbUserService extends BaseService<WbUser> {

    /**
     * 分页查询
     *
     * @param wbUserVo 接受参数对象
     * @param pageNum          分页数
     * @param pageSize         每页显示条数
     * @return ReturnResult
     * @author shengQiang Yu
     * @date 2019-11-28 15:14:32
     */
    ReturnResult page(WbUserVo wbUserVo, int pageNum, int pageSize);

    /**
     * 添加或更新
     *
     * @param wbUserVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author shengQiang Yu
     * @date 2019-11-28 15:14:32
     */
    ReturnResult addOrUpdate(WbUserVo wbUserVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param wbUserVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author shengQiang Yu
     * @date 2019-11-28 15:14:32
     */
    ReturnResult remove(WbUserVo wbUserVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param wbUserVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author shengQiang Yu
     * @date 2019-11-28 15:14:32
     */
    ReturnResult delete(WbUserVo wbUserVo, SysUser sysUser);
    /**
     * 查询对象集合
     *
     * @param wbUserVo 对象
     * @return List 对象集合
     * @author shengQiang yu
     * @date 2019-11-28 16:53
     */
    List<WbUser> listExample(WbUserVo wbUserVo);
    /**
     * 退出
     *
     * @param userId 会员id
     * @return
     * @author shengQiang yu
     * @date 2019-11-28 16:52
     */
    ReturnResult exit(String userId);
    /**
     * 登录
     *
     * @param wxMember 会员信息
     * @param loginName 登录名
     * @param password 登录密码
     * @param applyId 应用id
     * @return
     * @author shengQiang yu
     * @date 2019-11-28 16:52
     */
    ReturnResult login(WxMember wxMember, String loginName, String password, String applyId);
}